package com.lft.juc10.functionalinterface;

import java.util.function.Predicate;

/**
 * Predicate 断定型接口：泛型需要一个传入参数类型。返回值只能是 布尔值！
 */
public class TestPredicate {
	public static void main(String[] args) {
		// // 工具类：将输入的字符串，判断是否为空串或null。
		// lambda进化-1. 匿名内部类
		// Predicate<String> predicate = new Predicate<String>() {
		// 	@Override
		// 	public boolean test(String s) {
		// 		return s.isEmpty();
		// 	}
		// };
		// lambda进化-2. lambda 表达式
		// Predicate<String> predicate = (String s) -> {return s.isEmpty();};
		// lambda进化-3. lambda 表达式-简化（单个参数，去掉参数类型，去掉小括号）
		// Predicate<String> predicate = s -> {return s.isEmpty();};
		// lambda进化-4. lambda 表达式-简化（声明式 简化为 表达式）
		// Predicate<String> predicate = s -> s.isEmpty();
		// lambda进化-5. lambda 表达式-简化（方法引用）
		Predicate<String> predicate = String :: isEmpty;
		System.out.println(predicate.test(""));
	}
}
